package com.dcm.live.service;

import com.dcm.live.dto.LikedCountDto;
import com.dcm.live.entity.UserFocusEntity;
import com.dcm.live.entity.UserLikeEntity;

import java.util.List;

/**
 * [一句话描述该类的功能]
 *
 * @author : [pengrongsheng]
 * @createTime : [2021/4/9]
 */
public interface FocusService {
    /**
     * 将Redis里的关注数据存入数据库中
     */
    void transFromRedis2db();

    /**
     * 将Redis中的关注数量数据存入数据库
     */
    void transFocusCountFromRedis2db();

    /**
     * 把关注记录存入redis
     * @param uid 用户id
     * @param id 主播的用户id
     */
    void saveFocus2Redis(Long uid, Long id);

    /**
     * 取消关注的redis操作
     * @param uid 用户id
     * @param id 主播的用户id
     */
    void blurFromRedis(Long uid, Long id);

    /**
     * 把 uid 对应主播的关注 +1
     * @param uid
     */
    void incrementCount(Long uid);
    /**
     * 把 uid 对应主播的关注 -1
     * @param uid
     */
    void decrementCount(Long uid);

    /**
     * 获取Redis中存储的所有关注数据
     * @return
     */
    List<UserFocusEntity> getFocusDataFromRedis();

    /**
     * 获取Redis中存储的所有关注数量
     * @return
     */
    List<LikedCountDto> getFocusCountFromRedis();
}
